package org.dxy.domain.event.equipment;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 设备事件类型枚举
 * @author dxy
 * @createTime 2025/8/2
 */
@Getter
@AllArgsConstructor
public enum EquipmentEventTypeEnum {
    /** 设备注册 */
    REGISTERED("registered", "设备注册"),
    
    /** 设备激活 */
    ACTIVATED("activated", "设备激活"),
    
    /** 设备停用 */
    DEACTIVATED("deactivated", "设备停用"),
    
    /** 设备退役 */
    RETIRED("retired", "设备退役"),
    
    /** 设备删除 */
    DELETED("deleted", "设备删除"),
    
    /** 设备配置变更 */
    CONFIGURATION_CHANGED("configurationChanged", "设备配置变更"),
    
    /** 设备能力配置 */
    CAPABILITY_CONFIGURED("capabilityConfigured", "设备能力配置"),
    
    /** 设备状态变更 */
    STATUS_CHANGED("statusChanged", "设备状态变更"),
    
    /** 设备故障检测 */
    FAULT_DETECTED("faultDetected", "设备故障检测"),
    
    /** 设备故障恢复 */
    RECOVERED("recovered", "设备故障恢复"),
    
    /** 设备维护开始 */
    MAINTENANCE_STARTED("maintenanceStarted", "设备维护开始"),
    
    /** 设备维护完成 */
    MAINTENANCE_COMPLETED("maintenanceCompleted", "设备维护完成"),
    
    /** 设备巡检通过 */
    INSPECTION_PASSED("inspectionPassed", "设备巡检通过"),
    
    /** 设备巡检失败 */
    INSPECTION_FAILED("inspectionFailed", "设备巡检失败"),
    
    /** 任务分配给设备 */
    TASK_ASSIGNED("taskAssigned", "任务分配给设备"),
    
    /** 任务重新分配 */
    TASK_REASSIGNED("taskReassigned", "任务重新分配"),
    
    /** 工序开始 */
    PROCESS_STARTED("processStarted", "工序开始"),
    
    /** 工序完成 */
    PROCESS_COMPLETED("processCompleted", "工序完成"),
    
    /** 工序失败 */
    PROCESS_FAILED("processFailed", "工序失败"),
    
    /** 结果上报 */
    RESULT_REPORTED("resultReported", "结果上报");

    private final String key;         // 用于标识事件类型的代码（小写）
    private final String description; // 事件类型的描述
}